﻿#region

using System;

#endregion

namespace BuildMotion.MotionTracker.Common
{
    /// <summary>
    /// Use to store URL referrer information for the web request. 
    /// </summary>
    public class UrlReferrer
    {
        /// <summary>
        /// Gets or sets the URL referrer id.
        /// </summary>
        /// <value>The URL referrer id.</value>
        public Guid UrlReferrerId { get; set; }

        /// <summary>
        /// Gets or sets the absolute URI.
        /// </summary>
        /// <value>The absolute URI.</value>
        public string AbsoluteUri { get; set; }

        /// <summary>
        /// Gets or sets the authority.
        /// </summary>
        /// <value>The authority.</value>
        public string Authority { get; set; }

        /// <summary>
        /// Gets or sets the DNS safe host.
        /// </summary>
        /// <value>The DNS safe host.</value>
        public string DnsSafeHost { get; set; }

        /// <summary>
        /// Gets or sets the host.
        /// </summary>
        /// <value>The host.</value>
        public string Host { get; set; }

        /// <summary>
        /// Gets or sets the type of the host name.
        /// </summary>
        /// <value>The type of the host name.</value>
        public string HostNameType { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance is absolute URI.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if this instance is absolute URI; otherwise, <c>false</c>.
        /// </value>
        public bool IsAbsoluteUri { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance is default port.
        /// </summary>
        /// <value>
        /// 	<c>true</c> if this instance is default port; otherwise, <c>false</c>.
        /// </value>
        public bool IsDefaultPort { get; set; }

        /// <summary>
        /// Gets or sets the original string.
        /// </summary>
        /// <value>The original string.</value>
        public string OriginalString { get; set; }

        /// <summary>
        /// Gets or sets the path and query.
        /// </summary>
        /// <value>The path and query.</value>
        public string PathAndQuery { get; set; }

        /// <summary>
        /// Gets or sets the port.
        /// </summary>
        /// <value>The port.</value>
        public string Port { get; set; }

        /// <summary>
        /// Gets or sets the query.
        /// </summary>
        /// <value>The query.</value>
        public string Query { get; set; }

        /// <summary>
        /// Gets or sets the scheme.
        /// </summary>
        /// <value>The scheme.</value>
        public string Scheme { get; set; }
    }
}